home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / s390 / include / asm / chsc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.4 KB  |  128 lines

  1. /*
  2.  * ioctl interface for /dev/chsc
  3.  *
  4.  * Copyright 2008 IBM Corp.
  5.  * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
  6.  */
  7.  
  8. #ifndef _ASM_CHSC_H
  9. #define _ASM_CHSC_H
  10.  
  11. #include <asm/chpid.h>
  12. #include <asm/schid.h>
  13.  
  14. struct chsc_async_header {
  15.     __u16 length;
  16.     __u16 code;
  17.     __u32 cmd_dependend;
  18.     __u32 key : 4;
  19.     __u32 : 28;
  20.     struct subchannel_id sid;
  21. } __attribute__ ((packed));
  22.  
  23. struct chsc_async_area {
  24.     struct chsc_async_header header;
  25.     __u8 data[PAGE_SIZE - 16 /* size of chsc_async_header */];
  26. } __attribute__ ((packed));
  27.  
  28.  
  29. struct chsc_response_struct {
  30.     __u16 length;
  31.     __u16 code;
  32.     __u32 parms;
  33.     __u8 data[PAGE_SIZE - 8];
  34. } __attribute__ ((packed));
  35.  
  36. struct chsc_chp_cd {
  37.     struct chp_id chpid;
  38.     int m;
  39.     int fmt;
  40.     struct chsc_response_struct cpcb;
  41. };
  42.  
  43. struct chsc_cu_cd {
  44.     __u16 cun;
  45.     __u8 cssid;
  46.     int m;
  47.     int fmt;
  48.     struct chsc_response_struct cucb;
  49. };
  50.  
  51. struct chsc_sch_cud {
  52.     struct subchannel_id schid;
  53.     int fmt;
  54.     struct chsc_response_struct scub;
  55. };
  56.  
  57. struct conf_id {
  58.     int m;
  59.     __u8 cssid;
  60.     __u8 ssid;
  61. };
  62.  
  63. struct chsc_conf_info {
  64.     struct conf_id id;
  65.     int fmt;
  66.     struct chsc_response_struct scid;
  67. };
  68.  
  69. struct ccl_parm_chpid {
  70.     int m;
  71.     struct chp_id chp;
  72. };
  73.  
  74. struct ccl_parm_cssids {
  75.     __u8 f_cssid;
  76.     __u8 l_cssid;
  77. };
  78.  
  79. struct chsc_comp_list {
  80.     struct {
  81.         enum {
  82.             CCL_CU_ON_CHP = 1,
  83.             CCL_CHP_TYPE_CAP = 2,
  84.             CCL_CSS_IMG = 4,
  85.             CCL_CSS_IMG_CONF_CHAR = 5,
  86.             CCL_IOP_CHP = 6,
  87.         } ctype;
  88.         int fmt;
  89.         struct ccl_parm_chpid chpid;
  90.         struct ccl_parm_cssids cssids;
  91.     } req;
  92.     struct chsc_response_struct sccl;
  93. };
  94.  
  95. struct chsc_dcal {
  96.     struct {
  97.         enum {
  98.             DCAL_CSS_IID_PN = 4,
  99.         } atype;
  100.         __u32 list_parm[2];
  101.         int fmt;
  102.     } req;
  103.     struct chsc_response_struct sdcal;
  104. };
  105.  
  106. struct chsc_cpd_info {
  107.     struct chp_id chpid;
  108.     int m;
  109.     int fmt;
  110.     int rfmt;
  111.     int c;
  112.     struct chsc_response_struct chpdb;
  113. };
  114.  
  115. #define CHSC_IOCTL_MAGIC 'c'
  116.  
  117. #define CHSC_START _IOWR(CHSC_IOCTL_MAGIC, 0x81, struct chsc_async_area)
  118. #define CHSC_INFO_CHANNEL_PATH _IOWR(CHSC_IOCTL_MAGIC, 0x82, \
  119.                     struct chsc_chp_cd)
  120. #define CHSC_INFO_CU _IOWR(CHSC_IOCTL_MAGIC, 0x83, struct chsc_cu_cd)
  121. #define CHSC_INFO_SCH_CU _IOWR(CHSC_IOCTL_MAGIC, 0x84, struct chsc_sch_cud)
  122. #define CHSC_INFO_CI _IOWR(CHSC_IOCTL_MAGIC, 0x85, struct chsc_conf_info)
  123. #define CHSC_INFO_CCL _IOWR(CHSC_IOCTL_MAGIC, 0x86, struct chsc_comp_list)
  124. #define CHSC_INFO_CPD _IOWR(CHSC_IOCTL_MAGIC, 0x87, struct chsc_cpd_info)
  125. #define CHSC_INFO_DCAL _IOWR(CHSC_IOCTL_MAGIC, 0x88, struct chsc_dcal)
  126.  
  127. #endif
  128.